# ======类的私有属性============

# 对象外访问里面的私有变量  对象名+点+单下划线+类名+双下划线+属性
#    print(counter._Counter__count)

# 两个下划线开头的类的属性，就是私有属性，私有属性不能在类的外部访问
# 对象（类）引用的属性与 self应用的属性是不同的
from animel import Counter

counter = Counter()
counter.count()


# ======类的私有方法============
# 两个下划线开头的类的方法，就是私有属方法，私有方法不能被对象直接调用，
# 只能在类的内部用（self.方法名）调用

counter.count()
print(counter._Counter__count)


# ======单、双下划线，头尾双下划线的区别==========

# 单下划线定义的属性和方法是受保护的（protected）属性方法，只能在本类和子类中访问
# 双下划线定义的是私有属性或方法，只能在类的内部使用
# 双头双下划线定义的是python的内置方法


